﻿using BaiduAPI.Weather;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using BaiduAPI.AirQuality;

namespace BaiduAPI
{
    /// <summary>
    /// 百度API的调用
    /// </summary>
    public class BaiduApiInvoke
    {
        /// <summary>
        /// 获取天气对应的信息
        /// </summary>
        /// <param name="strCode">参数类型分为三种情况:
        /// 1:拼音 一个城市名称中汉字拼音  例如 北京 输入 "beijing"   优先使用
        /// 2:编码 一个城市名称对应的编码  例如 北京 输入 "101010100" 其次使用
        /// 3:汉字 一个城市的汉字名称      例如 北京 输入 "北京"      最后使用
        /// </param>
        /// <returns>获取数据失败,返回为null;获取数据成功,返回WeatherClass对象</returns>
        public static WeatherClass InvokeWeather(string strCode)
        {
            //匹配拼音
            Regex regex=new Regex(@"^[a-zA-Z]+");
            if (regex.IsMatch(strCode) == true)
            {
                return WeatherService.get_FromCityPinYin(strCode);
            }
            else
            {
                //匹配数字
                Regex regex1 = new Regex(@"^\d+$");
                if (regex1.IsMatch(strCode) == true)
                {
                    return WeatherService.get_FormCityNo(strCode);
                }
                else
                {
                    return WeatherService.get_FromCityName(strCode);
                }

            }
        }

        /// <summary>
        /// 根据城市的名称获取空气质量指数
        /// </summary>
        /// <param name="strCode">参数为:城市的名称, 要求为汉字</param>
        /// <returns>获取数据失败,返回为null;获取数据成功,返回AirQualityClass对象</returns>
        public static AirQualityClass InvokeAirQuality(string strCode)
        {
           return AirQualityService.get_FromCityPinYin(strCode);
        }
    }
}
